#ifndef DRAWPANEL_H
#define DRAWPANEL_H

#include <QWidget>

#include "baseelement.h"
#include "elementimage.h"
#include "microscheme.h"
#include "itoolbox.h"

//Холст рисования
class DrawPanel : public QWidget
{
    Q_OBJECT

private:
    //Схема
    MicroScheme* scheme;

    //Панель инструментов
    IToolBox* toolBox;

    //Дискретность расположения элементов
    int discreteness;

    //Масштаб
    qreal scale;

protected:
    //Отрисовка схемы
    void paintEvent(QPaintEvent *e);

    //Нажатие мыши
    void mousePressEvent(QMouseEvent *e);

    //Отпускание кнопки мыши
    void mouseReleaseEvent(QMouseEvent *e);

    //Перемещение мыши по холсту
    void mouseMoveEvent(QMouseEvent *e);

public:
    explicit DrawPanel(QWidget *parent = 0);
    ~DrawPanel();

    //Установить схему для отображения
    void setScheme(MicroScheme* scheme);

    //Проинициализировать панель инструментов
    void initToolBox(IToolBox* toolbox);
};

#endif // DRAWPANEL_H
